From 69d060228f7b220465f9deafc01a57389b5e38d2 Mon Sep 17 00:00:00 2001 From: TouyamaRie Date: Mon, 19 May 2025 14:11:49 +0800 Subject: [PATCH 1/4] [zh-CN] add js-errors-BigInt_division_by_zero --- .../errors/bigint_division_by_zero/index.md | 49 +++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 files/zh-cn/web/javascript/reference/errors/bigint_division_by_zero/index.md diff --git a/files/zh-cn/web/javascript/reference/errors/bigint_division_by_zero/index.md b/files/zh-cn/web/javascript/reference/errors/bigint_division_by_zero/index.md new file mode 100644 index 00000000000000..7d75c4d6e8d238 --- /dev/null +++ b/files/zh-cn/web/javascript/reference/errors/bigint_division_by_zero/index.md @@ -0,0 +1,49 @@ +--- +title: "RangeError: BigInt division by zero" +slug: Web/JavaScript/Reference/Errors/BigInt_division_by_zero +--- + +{{jsSidebar("Errors")}} + +当一个 {{jsxref("BigInt")}} 被 `0n` 除时,会产生 JavaScript 异常“BigInt division by zero”。 + +## 错误信息 + +```plain +RangeError: Division by zero (V8-based) +RangeError: BigInt division by zero (Firefox) +RangeError: 0 is an invalid divisor value (Safari) +``` + +## 错误类型 + +{{jsxref("RangeError")}} + +## 哪里出错了? + +当使用[除法](/zh-CN/docs/Web/JavaScript/Reference/Operators/Division)或者[取余](/zh-CN/docs/Web/JavaScript/Reference/Operators/Remainder)运算符时,如果除数为 `0n` 则会触发该错误。在 {{jsxref("Number")}} 运算中,除以 `0n` 会得到 [`Infinity`](/en-US/docs/Web/JavaScript/Reference/Global_Objects/Infinity),但在 BigInt 中不存在“Infinity”这一值,因此会抛出错误。在使用除法前,请先检查除数是否为 `0n`。 + +## 示例 + +### 被 0n 除 + +```js example-bad +const a = 1n; +const b = 0n; +const quotient = a / b; +// RangeError: BigInt division by zero +``` + +相反,应首先检查除数是否为 `0n`,并给出更友好的提示或者使用其他值,例如 `Infinity` 或 `undefined`。 + +```js example-good +const a = 1n; +const b = 0n; +const quotient = b === 0n ? undefined : a / b; +``` + +## 相关内容 + +- [`BigInt`](/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/BigInt) +- [除法(`/`)](/zh-CN/docs/Web/JavaScript/Reference/Operators/Division) +- [取余(`%`)](/zh-CN/docs/Web/JavaScript/Reference/Operators/Remainder) From 8300ec41754054740f0c51afbf414f324a91ba8d Mon Sep 17 00:00:00 2001 From: No one <31649882+TouyamaRie@users.noreply.github.com> Date: Mon, 19 May 2025 14:23:50 +0800 Subject: [PATCH 2/4] Update files/zh-cn/web/javascript/reference/errors/bigint_division_by_zero/index.md Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- .../reference/errors/bigint_division_by_zero/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/files/zh-cn/web/javascript/reference/errors/bigint_division_by_zero/index.md b/files/zh-cn/web/javascript/reference/errors/bigint_division_by_zero/index.md index 7d75c4d6e8d238..639b68a4fbdd92 100644 --- a/files/zh-cn/web/javascript/reference/errors/bigint_division_by_zero/index.md +++ b/files/zh-cn/web/javascript/reference/errors/bigint_division_by_zero/index.md @@ -21,7 +21,7 @@ RangeError: 0 is an invalid divisor value (Safari) ## 哪里出错了? -当使用[除法](/zh-CN/docs/Web/JavaScript/Reference/Operators/Division)或者[取余](/zh-CN/docs/Web/JavaScript/Reference/Operators/Remainder)运算符时,如果除数为 `0n` 则会触发该错误。在 {{jsxref("Number")}} 运算中,除以 `0n` 会得到 [`Infinity`](/en-US/docs/Web/JavaScript/Reference/Global_Objects/Infinity),但在 BigInt 中不存在“Infinity”这一值,因此会抛出错误。在使用除法前,请先检查除数是否为 `0n`。 +当使用[除法](/zh-CN/docs/Web/JavaScript/Reference/Operators/Division)或者[取余](/zh-CN/docs/Web/JavaScript/Reference/Operators/Remainder)运算符时,如果除数为 `0n` 则会触发该错误。在 {{jsxref("Number")}} 运算中,除以 `0n` 会得到 [`Infinity`](/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Infinity),但在 BigInt 中不存在“Infinity”这一值,因此会抛出错误。在使用除法前,请先检查除数是否为 `0n`。 ## 示例 From d02ef3fc5363d4a6d0e996142e0cd9a62fed8b01 Mon Sep 17 00:00:00 2001 From: No one <31649882+TouyamaRie@users.noreply.github.com> Date: Mon, 26 May 2025 13:41:15 +0800 Subject: [PATCH 3/4] Update files/zh-cn/web/javascript/reference/errors/bigint_division_by_zero/index.md Co-authored-by: Jason Ren <40999116+jasonren0403@users.noreply.github.com> --- .../reference/errors/bigint_division_by_zero/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/files/zh-cn/web/javascript/reference/errors/bigint_division_by_zero/index.md b/files/zh-cn/web/javascript/reference/errors/bigint_division_by_zero/index.md index 639b68a4fbdd92..8189b0a405ef17 100644 --- a/files/zh-cn/web/javascript/reference/errors/bigint_division_by_zero/index.md +++ b/files/zh-cn/web/javascript/reference/errors/bigint_division_by_zero/index.md @@ -42,7 +42,7 @@ const b = 0n; const quotient = b === 0n ? undefined : a / b; ``` -## 相关内容 +## 参见 - [`BigInt`](/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/BigInt) - [除法(`/`)](/zh-CN/docs/Web/JavaScript/Reference/Operators/Division) From 6cd1d22a2873f918e6df9edd0d7f82ebc5dbbe71 Mon Sep 17 00:00:00 2001 From: Jason Ren <40999116+jasonren0403@users.noreply.github.com> Date: Tue, 27 May 2025 23:04:19 +0800 Subject: [PATCH 4/4] Update index.md --- .../reference/errors/bigint_division_by_zero/index.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/files/zh-cn/web/javascript/reference/errors/bigint_division_by_zero/index.md b/files/zh-cn/web/javascript/reference/errors/bigint_division_by_zero/index.md index 8189b0a405ef17..82e7b2c5786d99 100644 --- a/files/zh-cn/web/javascript/reference/errors/bigint_division_by_zero/index.md +++ b/files/zh-cn/web/javascript/reference/errors/bigint_division_by_zero/index.md @@ -1,6 +1,8 @@ --- title: "RangeError: BigInt division by zero" slug: Web/JavaScript/Reference/Errors/BigInt_division_by_zero +l10n: + sourceCommit: c6f0f106b9083984dbf597678def6561729bb459 --- {{jsSidebar("Errors")}}